﻿/*
 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
CKEDITOR.dialog.add("anchor", function (c) {
    var d = function (a) {
        this._.selectedElement = a;
        this.setValueOf("info", "txtName", a.data("cke-saved-name") || "")
    };
    return{title: c.lang.link.anchor.title, minWidth: 300, minHeight: 60, onOk: function () {
        var a = CKEDITOR.tools.trim(this.getValueOf("info", "txtName")), a = {id: a, name: a, "data-cke-saved-name": a};
        if (this._.selectedElement)this._.selectedElement.data("cke-realelement") ? (a = c.document.createElement("a", {attributes: a}), c.createFakeElement(a, "cke_anchor", "anchor").replace(this._.selectedElement)) :
            this._.selectedElement.setAttributes(a); else {
            var b = c.getSelection(), b = b && b.getRanges()[0];
            b.collapsed ? (CKEDITOR.plugins.link.synAnchorSelector && (a["class"] = "cke_anchor_empty"), CKEDITOR.plugins.link.emptyAnchorFix && (a.contenteditable = "false", a["data-cke-editable"] = 1), a = c.document.createElement("a", {attributes: a}), CKEDITOR.plugins.link.fakeAnchor && (a = c.createFakeElement(a, "cke_anchor", "anchor")), b.insertNode(a)) : (CKEDITOR.env.ie && 9 > CKEDITOR.env.version && (a["class"] = "cke_anchor"), a = new CKEDITOR.style({element: "a",
                attributes: a}), a.type = CKEDITOR.STYLE_INLINE, c.applyStyle(a))
        }
    }, onHide: function () {
        delete this._.selectedElement
    }, onShow: function () {
        var a = c.getSelection(), b = a.getSelectedElement();
        if (b)CKEDITOR.plugins.link.fakeAnchor ? ((a = CKEDITOR.plugins.link.tryRestoreFakeAnchor(c, b)) && d.call(this, a), this._.selectedElement = b) : b.is("a") && b.hasAttribute("name") && d.call(this, b); else if (b = CKEDITOR.plugins.link.getSelectedLink(c))d.call(this, b), a.selectElement(b);
        this.getContentElement("info", "txtName").focus()
    }, contents: [
        {id: "info",
            label: c.lang.link.anchor.title, accessKey: "I", elements: [
            {type: "text", id: "txtName", label: c.lang.link.anchor.name, required: !0, validate: function () {
                return!this.getValue() ? (alert(c.lang.link.anchor.errorName), !1) : !0
            }}
        ]}
    ]}
});